package com.hzqy.web.ac.content;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hzqy.service.content.ContentServiceBean;
import com.hzqy.web.login.SessionKey;
import com.hzqy.web.vo.CmCatalogVo;
import com.hzqy.web.vo.CmContentVo;
import com.hzqy.web.vo.PmsOrgVo;
import com.hzqy.web.vo.UserHistoryVo;
@Controller
@RequestMapping("/content")
public class ContentAction {
	protected final Logger LOG = LoggerFactory.getLogger(getClass());
	@Resource
	private ContentServiceBean contentServiceBean;
	/**
	 * 更新内容，目前只更新code字段后续可扩展
	 * @param cmCententVo
	 * @return
	 */
	@RequestMapping("/updateContentSearchName")
	@ResponseBody
	public Object updateContentSearchName(CmContentVo cmCententVo){
		return contentServiceBean.updateContentSearchName(cmCententVo);
	}
	/**
	 * 更新内容，目前只更新code字段后续可扩展
	 * @param cmCententVo
	 * @return
	 */
	@RequestMapping("/updateContentCodeByName")
	@ResponseBody
	public Object updateContentCodeByName(CmContentVo cmCententVo){
		return contentServiceBean.updateContentCodeByName(cmCententVo);
	}
	/**
	 * 根据名称查询内容
	 * @param cmCententVo
	 * @return
	 */
	@RequestMapping("/selectContentListByName")
	@ResponseBody
	public Object selectContentListByName(CmContentVo cmCententVo){
		return contentServiceBean.selectContentListByName(cmCententVo);
	}
	/**
	 * 查询课程列表
	 * @param session
	 * @param f_catalog_id
	 * @param pageNo
	 * @param pageSize
	 * @param f_cp_cprid
	 * @param contentVo
	 * @return
	 */
	@RequestMapping("/selectContentListByCourse")
	@ResponseBody
	public Object selectContentListByCourse(HttpSession session,int f_catalog_id,int pageNo,int pageSize,String f_cp_cprid,CmContentVo contentVo){
		//这里需要实现从session中获取用户归属企业，这个逻辑只针对酒店行业应用+学校行业应用起作用，不对怀球剧场+教育+K歌这类增值业务起作用。
				PmsOrgVo orgVo=(PmsOrgVo) session.getAttribute(SessionKey.SESSION_USER_FOR_ORG_INFO);
				String f_sa_id = String.valueOf(session.getAttribute(SessionKey.SESSION_AREA));
				contentVo.setF_sa_id(f_sa_id);
				int f_po_id=0;
				if(orgVo!=null && contentVo.getF_is_public()==0){
					f_po_id=orgVo.getF_po_id();
				}
				List<CmContentVo> contentList = contentServiceBean.selectContentListByCatalogId(f_catalog_id,f_po_id+"", pageNo, pageSize,f_cp_cprid,contentVo);
				return contentList;
	}
	/**
	 * 查询课程列表
	 * @param session
	 * @param f_catalog_id
	 * @param pageNo
	 * @param pageSize
	 * @param f_cp_cprid
	 * @param contentVo
	 * @return
	 */
	@RequestMapping("/selectContentListByCourseCount")
	@ResponseBody
	public Object selectContentListByCourseCount(HttpSession session,int f_catalog_id,String f_cp_cprid,CmContentVo contentVo){
		//这里需要实现从session中获取用户归属企业，这个逻辑只针对酒店行业应用+学校行业应用起作用，不对怀球剧场+教育+K歌这类增值业务起作用。
				PmsOrgVo orgVo=(PmsOrgVo) session.getAttribute(SessionKey.SESSION_USER_FOR_ORG_INFO);
				String f_sa_id = String.valueOf(session.getAttribute(SessionKey.SESSION_AREA));
				contentVo.setF_sa_id(f_sa_id);
				int f_po_id=0;
				if(orgVo!=null && contentVo.getF_is_public()==0){
					f_po_id=orgVo.getF_po_id();
				}
				int count=contentServiceBean.selectContentListByCourseCount(f_catalog_id,f_po_id+"",f_cp_cprid,contentVo);
				Map<String, Integer> map=new HashMap<String, Integer>();
				map.put("count", count);
				return map;
	}
	/**
	 * 根据父级catalogId得到父级目录下的一级子目录总数
	 * @param f_catalog_id
	 * @return
	 */
	@RequestMapping("/selectContentGroupByCourseList")
	@ResponseBody
	public Object selectContentGroupByCourseList(HttpSession session,int f_catalog_id,int pageNo,int pageSize,CmContentVo contentVo) {
		PmsOrgVo orgVo=(PmsOrgVo) session.getAttribute(SessionKey.SESSION_USER_FOR_ORG_INFO);
		int f_po_id=0;
		if(orgVo!=null && contentVo.getF_is_public()==0){
			f_po_id=orgVo.getF_po_id();
		}
		List<CmContentVo> contentList =contentServiceBean.selectContentGroupByCourseList(f_catalog_id,f_po_id+"", pageNo, pageSize,contentVo);
		return contentList;
	}
	/**
	 * 根据父级catalogId得到父级目录下的一级子目录总数
	 * @param f_catalog_id
	 * @return
	 */
	@RequestMapping("/selectContentGroupByCourseListCount")
	@ResponseBody
	public Object selectContentGroupByCourseListCount(HttpSession session,int f_catalog_id,CmContentVo contentVo) {
		PmsOrgVo orgVo=(PmsOrgVo) session.getAttribute(SessionKey.SESSION_USER_FOR_ORG_INFO);
		int f_po_id=0;
		if(orgVo!=null && contentVo.getF_is_public()==0){
			f_po_id=orgVo.getF_po_id();
		}
		int count= contentServiceBean.selectContentGroupByCourseListCount(f_catalog_id,f_po_id+"",contentVo);
		Map<String, Integer> map=new HashMap<String, Integer>();
		map.put("count", count);
		return map;
	} 
	/**
	 * 查询精品课程列表
	 * @return
	 */
	@RequestMapping("/selectHistoryCourse")
	@ResponseBody
	public Object selectHistoryCourse(String courseType){
		List<CmContentVo> uhvList = null;
		uhvList=contentServiceBean.selectHistoryCourse(courseType);
		return uhvList;
	}
	/**
	 * 查询课程列表
	 * @return
	 */
	@RequestMapping("/selectUserViewHistory")
	@ResponseBody
	public Object selectUserViewHistory(HttpSession session){
		String serverId = String.valueOf(session.getAttribute(SessionKey.SESSION_SERVERID));
		List<UserHistoryVo>	uhvList=contentServiceBean.selectUserViewHistory(serverId);
		return uhvList;
	}
}
